package Herramientas;

import CalendarioDTOS.RegistrosDiaDTO;
import SistemaDTOS.MenuItemDTO;
import SistemaDTOS.UsersDTO;
import SistemaDTOS.UsersDataDTO;
import TPVTarryDTOS.CatalogoProductosDTO;
import TPVTarryDTOS.ExistenciasTiendaDTO;
import TPVTarryDTOS.ItemListaDTO;
import TPVTarryDTOS.ParametrosVentaDTO;
import TarryDTOS.CarteraVencidaDTO;
import TarryDTOS.ClientesDTO;
import TarryDTOS.ConceptoCompraDTO;
import TarryDTOS.ConceptoOrdenCompraDTO;
import TarryDTOS.ExistenciasProductoDTO;
import TarryDTOS.ImpuestosDTO;
import TarryDTOS.OrdenCompraDTO;
import TarryDTOS.PartnerDTO;
import TarryDTOS.ProductosVentaDTO;
import TarryDTOS.RegistroEnvioDTO;
import TarryDTOS.TarryClientesDTO;
import TarryDTOS.TarryItemPedidoDTO;
import TarryDTOS.TarryPedidosDTO;
import TarryDTOS.TarryProductosDTO;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ResultSets {

    public UsersDTO usersDTO(ResultSet rs) throws SQLException {
        UsersDTO user = new UsersDTO();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setPass(rs.getString("pass"));
        user.setEmail(rs.getString("email"));
        user.setNivelSeguridad(rs.getInt("nivel_seguridad"));
        user.setEstado(rs.getInt("estado"));

        return user;
    }

    public RegistrosDiaDTO registrosDiaDTO(ResultSet rst) throws SQLException {
        RegistrosDiaDTO r = new RegistrosDiaDTO();
        r.setId(rst.getInt("id"));
        r.setUserId(rst.getInt("user_id"));
        r.setFechaEvento(rst.getString("fecha_evento"));
        r.setHoraEventoInicio(rst.getString("hora_evento_inicio"));
        r.setHoraEventoFin(rst.getString("hora_evento_fin"));
        r.setDescripcion(rst.getString("descripcion"));

        return r;
    }

    public MenuItemDTO menuItemDTO(ResultSet rst) throws SQLException {
        MenuItemDTO m = new MenuItemDTO();
        m.setId(rst.getInt("id"));
        m.setIdCategoria(rst.getInt("id_categoria"));
        m.setIdPertnece(rst.getInt("id_pertenece"));
        m.setNivelSeguridad(rst.getInt("nivel_seguridad"));
        m.setNumeroServicio(rst.getInt("numero_servicio"));
        m.setTitulo(rst.getString("titulo"));
        m.setUrl(rst.getString("url"));

        return m;
    }

    public TarryPedidosDTO tarryPedidosDTO(ResultSet r) throws SQLException {
        TarryPedidosDTO p = new TarryPedidosDTO();
        p.setId(r.getInt("id"));
        p.setIdVendedor(r.getInt("id_vendedor"));
        p.setIdPedidido(r.getInt("id_pedido"));
        p.setIdCliente(r.getInt("id_cliente"));
        p.setEstado(r.getInt("estado"));
        p.setFechaCreacion(r.getString("fecha_creacion"));
        p.setHoraCreacion(r.getString("hora_creacion"));
        p.setTotal(r.getDouble("total"));
        p.setTipoComprobante(r.getInt("tipo_comprobante")); // NUEVO CAMPO AGREGADO
        p.setBanderaInforme(r.getInt("bandera_informe")); // NUEVO CAMPO AGREGADO
        p.setBanderaProductos(r.getInt("bandera_productos")); // NUEVO CAMPO AGREGADO CONTIENE EL NUMERO DE ITEMS DEL PEDIDO
        p.setObservaciones(r.getString("observaciones"));

        return p;
    }

    public TarryClientesDTO tarryClientesDTO(ResultSet r) throws SQLException {
        TarryClientesDTO t = new TarryClientesDTO();
        t.setId(r.getInt("id"));
        t.setIdCliente(r.getInt("id_cliente"));
        t.setNombre(r.getString("nombre"));
        t.setDireccion(r.getString("direccion"));
        t.setTelefono(r.getInt("telefono"));
        t.setEmail(r.getString("email"));
        t.setFechaApertura(r.getString("facha_apertura"));
        t.setDescuentoAsignado(r.getInt("decuento"));

        return t;
    }

    public TarryProductosDTO tarryProductosDTO(ResultSet r) throws SQLException {
        TarryProductosDTO p = new TarryProductosDTO();
        p.setId(r.getInt("id"));
        p.setIdTipo(r.getInt("id_tipo"));
        p.setIdCB(r.getString("id_cb"));
        p.setIdPertenece(r.getInt("id_pertenece"));
        p.setProveedor(r.getString("proveedor"));
        p.setNombre(r.getString("nombre"));
        p.setDescripcion(r.getString("descripcion"));
        p.setObsrvaciones(r.getString("observaciones"));

        return p;
    }

    public TarryItemPedidoDTO tarryItemPedidoDTO(ResultSet r) throws SQLException {
        TarryItemPedidoDTO itm = new TarryItemPedidoDTO();
        itm.setId(r.getInt("id"));
        itm.setIdPedido(r.getInt("id_pedido"));
        itm.setIdProducto(r.getInt("id_producto"));
        itm.setIdEstadoProducto(r.getInt("id_estado_producto"));
        itm.setCantidadUnidad(r.getInt("cantidad_unidades"));
        itm.setCantidadCorrugados(r.getInt("cantidad_corrugados"));
        itm.setPrecionAsignadoCorrugado(r.getInt("precio_asigando_corrugado"));
        itm.setSubtotalCorrugados(r.getInt("subtotal_corrugados"));
        itm.setDescuentoItem1(r.getDouble("descuento_asignado_uno"));
        itm.setDescuentoItem2(r.getDouble("descuento_asignado_dos"));
        itm.setDescuentoItem3(r.getDouble("descuento_asignado_tres"));
        itm.setTotalItem(r.getDouble("total_item"));
        itm.setTotalItemIeps(r.getDouble("total_item_ieps"));
        itm.setBanderaEstado(r.getInt("bandera_estado"));

        return itm;
    }

    public ParametrosVentaDTO parametrosVentaDTO(ResultSet rst) throws SQLException {
        ParametrosVentaDTO p = new ParametrosVentaDTO();
        p.setId(rst.getInt("id"));
        p.setIdProducto(rst.getString("id_producto"));
        p.setPrecioCosto(rst.getDouble("precio_costo"));
        p.setPrecioPublico(rst.getDouble("precio_publico"));
        p.setAgranelFlag(rst.getInt("agranel"));

        return p;
    }

    public ItemListaDTO itemListaDTO(ResultSet rst) throws SQLException {
        ItemListaDTO item = new ItemListaDTO();
        item.setId(rst.getInt("id"));
        item.setIdTicket(rst.getInt("id_ticket"));
        item.setIdItem(rst.getString("id_item"));
        item.setDescripcion(rst.getString("descripcion"));
        item.setCantidad(rst.getDouble("cantidad"));
        item.setPrecioPublico(rst.getDouble("precio_publico"));
        item.setSubTotal(rst.getDouble("sub_tot"));

        return item;
    }

    public ExistenciasTiendaDTO existenciasTiendaDTO(ResultSet rst) throws SQLException {
        ExistenciasTiendaDTO exist = new ExistenciasTiendaDTO();
        exist.setId(rst.getInt("id"));
        exist.setIdProducto(rst.getInt("id_producto"));
        exist.setExistencias(rst.getDouble("existencias"));

        return exist;
    }

    public CatalogoProductosDTO catalogoProductosDTO(ResultSet rst) throws SQLException {
        CatalogoProductosDTO catalogoProductosDTO = new CatalogoProductosDTO();
        catalogoProductosDTO.setId(rst.getInt("id"));
        catalogoProductosDTO.setIdTipo(rst.getInt("id_tipo"));
        //-->
        catalogoProductosDTO.setIdCB(rst.getString("id_cb"));
        //-->
        catalogoProductosDTO.setIdPertenece(rst.getInt("id_pertenece"));
        catalogoProductosDTO.setProveedor(rst.getString("proveedor"));
        catalogoProductosDTO.setNombre(rst.getString("nombre"));
        catalogoProductosDTO.setDescripcion(rst.getString("descripcion"));
        catalogoProductosDTO.setObservaciones(rst.getString("observaciones"));

        return catalogoProductosDTO;
    }

    public ClientesDTO clientesDTO(ResultSet rst) throws SQLException {
        ClientesDTO clientesDTO = new ClientesDTO();
        clientesDTO.setId(rst.getInt("id"));
        clientesDTO.setNombreCliente(rst.getString("nombre_cliente"));
        clientesDTO.setCiudad(rst.getString("ciudad"));
        clientesDTO.setEstado(rst.getString("estado"));
        clientesDTO.setTelefono(rst.getString("telefono"));
        clientesDTO.setDomicilio(rst.getString("domicilio"));
        clientesDTO.setCodigoPostal(rst.getString("codigo_postal"));
        clientesDTO.setColonia(rst.getString("colonia"));
        clientesDTO.setRfc(rst.getString("rfc"));

        // VARIABLES DE DESCUENTO ASIGNADO 
        clientesDTO.setDescuentoAsignadoUno(rst.getDouble("desc_uno"));
        clientesDTO.setDescuentoAsignadoDos(rst.getDouble("desc_dos"));
        clientesDTO.setDescuentoAsignadoTres(rst.getDouble("desc_tres"));

        return clientesDTO;
    }

    public ProductosVentaDTO productosVenta(ResultSet rst) throws SQLException {
        ProductosVentaDTO producto = new ProductosVentaDTO();
        producto.setId(rst.getInt("id"));
        producto.setNombre(rst.getString("nombre_producto"));
        producto.setPrecio(rst.getDouble("precio_lista"));
        producto.setIEPS(rst.getInt("IEPS"));

        return producto;
    }

    public ImpuestosDTO impuestosDTO(ResultSet rst) throws SQLException {
        ImpuestosDTO impuestosDTO = new ImpuestosDTO();
        impuestosDTO.setId(rst.getInt("id"));
        impuestosDTO.setIva(rst.getDouble("iva"));
        impuestosDTO.setIsr(rst.getDouble("isr"));
        impuestosDTO.setIspt(rst.getDouble("ispt"));
        impuestosDTO.setIeps(rst.getDouble("ieps"));
        impuestosDTO.setIetu(rst.getDouble("ietu"));
        impuestosDTO.setIde(rst.getDouble("ide"));

        return impuestosDTO;
    }

    public CarteraVencidaDTO carteraVencidaDTO(ResultSet rst) throws SQLException {
        CarteraVencidaDTO cv = new CarteraVencidaDTO();
        cv.setId(rst.getInt("id"));
        cv.setIdCliente(rst.getInt("id_cliente"));
        cv.setIdPedido(rst.getInt("id_pedido"));
        cv.setDiasCredito(rst.getInt("dias_credito"));
        cv.setBanderaEstado(rst.getInt("bandera_estado"));
        cv.setFechaEmisionCredito(rst.getString("fecha_emision"));
        cv.setFechaInicioCredito(rst.getString("fecha_inicio"));
        cv.setFechaAlertaCredito(rst.getString("fecha_alerta"));
        cv.setFechaVencimientoCredito(rst.getString("fecha_vencimiento"));
        cv.setDiasVencido(rst.getInt("dias_vencido"));
        return cv;
    }

    public ExistenciasProductoDTO existenciasProductoDTO(ResultSet rst) throws SQLException {
        ExistenciasProductoDTO ex = new ExistenciasProductoDTO();
        ex.setId(rst.getInt("clave"));
        ex.setDescripcion(rst.getString("descripcion"));
        ex.setExistencia(rst.getInt("exietncia"));
        return ex;
    }

    public RegistroEnvioDTO registroEnvioDTO(ResultSet rst) throws SQLException {
        RegistroEnvioDTO regEnv = new RegistroEnvioDTO();
        regEnv.setId(rst.getInt("id"));
        regEnv.setFolioFiscal(rst.getInt("folio_fiscal"));
        regEnv.setIdConductor(rst.getInt("id_conductor"));
        regEnv.setIdfletera(rst.getInt("id_fletera"));
        regEnv.setIdPedido(rst.getInt("id_pedido"));
        regEnv.setIdVehiculo(rst.getInt("id_vehiculo"));
        regEnv.setNumeroUnidad(rst.getInt("numero_unidad"));
        regEnv.setObservaciones(rst.getString("observaciones"));
        return regEnv;
    }

    public PartnerDTO partnerDTO(ResultSet rst) throws SQLException {
        PartnerDTO partner = new PartnerDTO();
        partner.setId(rst.getInt("id"));
        partner.setNombres(rst.getString("nombres"));
        partner.setApellidos(rst.getString("apellidos"));
        partner.setTerritorio(rst.getString("territorio"));
        partner.setDireccion(rst.getString("direccion"));
        partner.setTelefonos(rst.getString("telefonos"));
        partner.setEmail(rst.getString("email"));
        partner.setTipoPartner(rst.getInt("tipo_partner"));
        partner.setRazonSocial(rst.getString("razon_social"));
        return partner;
    }

    public OrdenCompraDTO ordenCompraDTO(ResultSet rst) throws SQLException {
        OrdenCompraDTO o = new OrdenCompraDTO();
        o.setId(rst.getInt("id"));
        o.setFolio(rst.getInt("folio"));
        o.setIdPartner(rst.getInt("id_partner"));
        o.setEstado(rst.getInt("estado"));
        o.setTotalCompra(rst.getInt("total"));
        o.setFechaCreacion(rst.getString("fecha_creacion"));
        o.setFechaEntrega(rst.getString("fecha_entrega"));
        o.setObservaciones(rst.getString("observaciones"));
        o.setnConceptos(rst.getInt("numero_conceptos"));
        return o;
    }

    public ConceptoCompraDTO conceptoCompraDTO(ResultSet rst) throws SQLException {
        ConceptoCompraDTO c = new ConceptoCompraDTO();
        c.setId(rst.getInt("id"));
        c.setFolio(rst.getInt("folio"));
        c.setConcepto(rst.getString("concepto"));
        c.setCantidad(rst.getDouble("cantidad"));
        c.setUm(rst.getInt("um"));
        c.setPu(rst.getDouble("pu"));
        c.setTotalConcepto(rst.getDouble("total_concepto"));
        c.setMontoIva(rst.getDouble("monto_iva"));
        c.setPorcentajeIva(rst.getDouble("porcentaje_iva"));
        return c;
    }

    public UsersDataDTO usersDataDTO(ResultSet rst) throws SQLException {
        UsersDataDTO u = new UsersDataDTO();
        String sql = new String();
        u.setId(rst.getInt("id"));
        u.setIdUser(rst.getInt("id_user"));
        u.setNombre(rst.getString("nombre"));
        u.setApMaterno(rst.getString("apmat"));
        u.setApPaterno(rst.getString("appat"));
        u.setDireccion(rst.getString("domicilio"));
        u.setCelular(rst.getString("celular"));
        u.setMail(rst.getString("email"));
        // FALTA FECHA  DE NACIEMITNO
        return u;
    }
}
